/*
试题 基础练习 芯片测试
     
资源限制
内存限制：512.0MB   C/C++时间限制：1.0s   Java时间限制：3.0s   Python时间限制：5.0s

问题描述
　　有n（2≤n≤20）块芯片，有好有坏，已知好芯片比坏芯片多。
　　每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时，能正确给出被测试芯片是好还是坏。
	而用坏芯片测试其他芯片时，会随机给出好或是坏的测试结果（即此结果与被测试芯片实际的好坏无关）。
　　给出所有芯片的测试结果，问哪些芯片是好芯片。

输入格式
　　输入数据第一行为一个整数n，表示芯片个数。
　　第二行到第n+1行为n*n的一张表，每行n个数据。表中的每个数据为0或1，在这n行中的第i行第j列（1≤i, j≤n）的数据表示用第i块芯片测试第j块芯片时得到的测试结果，
	1表示好，0表示坏，i=j时一律为1（并不表示该芯片对本身的测试结果。芯片不能对本身进行测试）。

输出格式
　　按从小到大的顺序输出所有好芯片的编号

样例输入
3
1 0 1
0 1 0
1 0 1

样例输出
1 3

*/

/*
	思路:
		因为好的芯片被好的芯片测试一定为 1, 被坏的芯片测试可能为 1, 可能为 0.
		所以一个芯片被测试的结果是 1 多, 则这块芯片为好芯片
*/

/*-----------------------------------------------------------------------------------------------------------------------------------------*/
#include<iostream>
#include<vector>
using namespace std;

int main()
{
	int n;
	cin >> n;
	vector<vector<int>> chip;
	for (int i = 0; i < n; i++){
		vector<int> tmp;
		for (int j = 0; j < n; j++){
			int val;
			cin >> val;
			tmp.push_back(val);
		}
		chip.push_back(tmp);
	}
	for (int i = 0; i < n; i++){
		int count1 = 0;		// 0 的数量
		int count0 = 0;		// 1 的数量
		for (int j = 0; j < n; j++){
			//每一列为该芯片的检测结果
			chip[j][i] == 1 ? count1++ : count0++;
		}
		if (count1 > count0)
			cout << i + 1 << " ";
	}
	cout << endl;
	return 0;
}

/*-----------------------------------------------------------------------------------------------------------------------------------------*/